Publié le
April 22, 2024
Dans le vaste univers de l'administration des serveurs web, la sécurité est une préoccupation primordiale. À mesure que la transmission de données entre les clients et les serveurs devient de plus en plus vitale, garantir sa protection devient incontournable. Dans ce contexte, installer un serveur web sur une distribution Linux implique une tâche fondamentale : assurer la sécurité des données transmises. Au premier plan de cet effort se trouve la mise en œuvre du chiffrement Transport Layer Security (TLS). Pour quiconque travaille dans le développement web ou l'hébergement, maîtriser le chiffrement TLS n'est pas seulement une bonne pratique, mais une compétence de base pour protéger les informations sensibles échangées sur le web.
Présentation du deuxième article de notre série : Installation de serveurs web sur différentes distributions Linux où nous explorerons le processus d’installation et de configuration d’un serveur proxy inverse/web léger haute performance : "NGINX" pour activer le chiffrement TLS sur des systèmes d’exploitation populaires tels que Red Hat Enterprise Linux (RHEL), Debian et OpenSUSE.
Ce guide détaillé fournit des étapes claires et pratiques pour mettre en place une couche supplémentaire de sécurité sur vos serveurs web NGINX, garantissant ainsi la confidentialité et l'intégrité des communications.
Installation et configuration de NGINX pour le chiffrement TLS sur RHEL/Debian/OpenSUSE
Mais avant de plonger dans le processus de configuration, il est essentiel de s'assurer que les prérequis suivants sont remplis :
Prérequis :
Mise à jour des paquets déjà présents. Des privilèges spéciaux seront nécessaires pour certaines opérations tout au long de la procédure :
RHEL
dnf update -y
Remarque: Utilisez yum si dnf n'est pas présent sur la machine
Ubuntu
apt update –y
Remarque : Utilisez apt-get si apt n'est pas présent sur la machine
OpenSUSE
zypper refresh
Blocage du processus NGINX :
Écrivez les différentes commandes pour chaque système :
RHEL
dnf install -y nginx
Ubuntu
sudo apt install nginx
OpenSUSE
zypper install -y nginx
Remarque: Le service ne devrait pas encore avoir démarré. Il peut être démarré avec le systemctl start nginx commande, après quoi il commencera à écouter sur le port 80 par défaut. Ce n'est pas sécurisé, il est fortement recommandé d'utiliser https (port 443) et non http (port 80).
Vous souhaitez mettre en œuvre ces pratiques PKI ?
Obtenez des conseils d'experts pour mettre en œuvre des solutions PKI sécurisées pour votre organisation.
Obtenir de l'aide d'expert2. Si un pare-feu est configuré, il est nécessaire d’autoriser la communication via le port 443. Par exemple, avec la commande suivante pour le pare-feu :
firewall-cmd --permanent --add-port={443/tcp}
3. Enfin, pour recharger le service du pare-feu :
firewall-cmd --reload
Configuration de NGINX pour le chiffrement TLS :
Pour configurer NGINX, il est possible d’éditer le /etc/nginx/nginx.conf ou de créer .conf fichiers dans /etc/nginx/conf.d. Si ces fichiers de configuration sont stockés ailleurs, un lien symbolique peut être créé dans le conf.d répertoire pour pointer vers le fichier de configuration.
Dans le fichier de configuration choisi, il est possible de créer un serveur virtuel qui peut être entièrement configuré.
server { listen 443 ssl; server_name www.hostname.com; ssl_certificate www.hostname.com.crt; ssl_certificate_key www.hostname.com.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; }
Remarques :
Le serveur doit écouter sur le port 443 et ssl doit être appliqué.
Server_name est le nom d'hôte qui sera utilisé et exposera le serveur virtuel.
Le chemin du certificat du serveur et de sa clé privée doit être spécifié. Via Evertrust’ Stream et Horizon plateformes, les certificats peuvent être émis et gérés parfaitement.
Le ssl_protocols peut être configuré. Il est fortement recommandé de n'activer que TLSv1.2 et TLSv1.3 ou uniquement TLSv1.3 pour une sécurité accrue.
Le ssl_session_cache permet de mettre en cache les sessions SSL et de les partager entre les travailleurs. Dans la configuration précédente, 10 mégaoctets sont autorisés, ce qui correspond à environ 4000 sessions.
Le ssl_session_timeout définit la durée pendant laquelle la session peut fonctionner avant d'expirer.
Le www.hostname.com.key fichier doit être configuré pour être uniquement accessible par l'utilisateur root pour plus de sécurité :
chown root:root /path/www.hostname.com.key
chmod 600 /path/www.hostname.com.key
Pour appliquer les modifications à la configuration NGINX, redémarrez le service :
Testez votre configuration NGINX :
nginx -t
puis
systemctl redémarrer nginx
Conclusion :
En conclusion, installer un serveur web sur une distribution Linux est une étape cruciale pour mettre en place un environnement d'hébergement web, le choix dépend de vos exigences et préférences spécifiques, ils offrent des fonctionnalités robustes et des optimisations de performance pour servir le contenu web efficacement. En suivant les instructions d'installation appropriées pour la distribution Linux que vous avez choisie, vous pouvez rapidement configurer un serveur web fiable et commencer à héberger vos sites web ou applications pour que le monde y accède.